package basketball_behaviour

import (
	"longmen/server/internal/services/nami/services/sports/basketball"
	"longmen/server/pkg/db/mysql/models/models_sports"
)

type (
	CompetitionApiResponse struct {
		Code  int `json:"code"`
		Query struct {
			Total   int    `json:"total"`    // 返回数据总量
			Type    string `json:"type"`     // 查询类型，id查询：sequence、time查询：timehelper，默认sequence
			ID      int    `json:"id"`       // 查询id值，默认为0（id查询，字段返回）
			MinID   int    `json:"min_id"`   // 返回数据最小id（id查询，字段返回）
			MaxID   int    `json:"max_id"`   // 返回数据最大id（id查询，字段返回）
			Limit   int    `json:"limit"`    // 可返回数据最大数（id查询，字段返回）
			Time    int    `json:"time"`     // 查询time值（time查询，字段返回）
			MinTime int    `json:"min_time"` // 返回数据最小time(更新时间戳)（time查询，字段返回）
			MaxTime int    `json:"max_time"` // 返回数据最大time(更新时间戳)（time查询，字段返回）
		} `json:"query"`
		Results []Competition `json:"results"`
	}
	Competition struct {
		ID           int    `json:"id"`             // 赛事id
		CategoryID   int    `json:"category_id"`    // 分类id
		CountryID    int    `json:"country_id"`     // 国家id
		NameZh       string `json:"name_zh"`        // 中文名称
		NameZht      string `json:"name_zht"`       // 粤语名称
		NameEn       string `json:"name_en"`        // 英文名称
		ShortNameZh  string `json:"short_name_zh"`  // 中文简称
		ShortNameZht string `json:"short_name_zht"` // 粤语简称
		ShortNameEn  string `json:"short_name_en"`  // 英文简称
		Logo         string `json:"logo"`           // 赛事logo
		UpdatedAt    int    `json:"updated_at"`     // 更新时间
	}
)

func (r CompetitionApiResponse) Interface() []basketball.InsertCompetitionInterface {
	a := make([]basketball.InsertCompetitionInterface, 0)
	for _, record := range r.Results {
		a = append(a, record)
	}
	return a
}

func (c Competition) Get() models_sports.BasketballCompetition {
	return models_sports.BasketballCompetition{
		ID:           c.ID,
		CategoryID:   c.CategoryID,
		CountryID:    c.CountryID,
		NameZh:       c.NameZh,
		NameZht:      c.NameZht,
		NameEn:       c.NameEn,
		ShortNameZh:  c.ShortNameZh,
		ShortNameZht: c.ShortNameZht,
		ShortNameEn:  c.ShortNameEn,
		Logo:         c.Logo,
		UpdatedAt:    c.UpdatedAt,
	}
}
